package gestion_des_note;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.event.*;
import java.util.*;

public class Fentre_acceuile extends JFrame {
  private JPanel contentPane;
  Etudiant etd1 = new Etudiant();
  Classe cls = new Classe();
  Note note = new Note();
  Cours cour = new Cours();
  Color Blue = null;
 // Font Arial = null ;
  
  static Fichier fic=new Fichier("Etudiant.txt");
  static Fichier fic2=new Fichier("Filier.txt");
  static Fichier fic3=new Fichier("Note.txt");
  static Fichier fic4=new Fichier("Cours.txt");
  
  private JMenuBar jMenuBar1 = new JMenuBar();
 
  private JMenu jMenu_Etudiant = new JMenu();
  private JMenu jMenu_Note = new JMenu();
  private JMenu jMenu_Cours = new JMenu();
  private JMenu jMenu_Filiere = new JMenu();
  private JMenuItem jMenu_filiere_ajout = new JMenuItem();
  private BorderLayout borderLayout1 = new BorderLayout();
  private JMenuItem jMenuItem_ajout = new JMenuItem();
  private JMenuItem jMenuItem_consult = new JMenuItem();
  private JMenuItem jMenuItem_suprime = new JMenuItem();
  private JMenuItem jMenuItem_Afficher_classe = new JMenuItem();
  
  //------------------
  private JMenuItem jMenuItem_Afficher_cours = new JMenuItem();
  //------------------
  private JMenuItem jMenuItem_trier = new JMenuItem();
  private JMenuItem jMenuItem_moyenne = new JMenuItem();
 
  private JMenuItem jMenuItem_AjoutC = new JMenuItem();
  private JMenuItem jMenuItem_AjoutN = new JMenuItem();
  private JMenuItem jMenuItem_SupC = new JMenuItem();
  private JMenuItem jMenuItem_SupN = new JMenuItem();
  private JMenuItem jMenuItem_ModC = new JMenuItem();
  private JMenuItem jMenuItem_ModN = new JMenuItem();


  /* menu note******************************************************
 

  private JMenu jMenu_Note = new JMenu();
  private JMenuItem jMenu_Note_ajout = new JMenuItem();
  private BorderLayout borderLayout2 = new BorderLayout();
  private JMenuItem jMenuItem_ajout1 = new JMenuItem();
  private JMenuItem jMenuItem_consult1 = new JMenuItem();
  private JMenuItem jMenuItem_suprime1 = new JMenuItem();
  //private JMenuItem jMenuItem_Afficher_ = new JMenuItem();
 // private JMenuItem jMenuItem_trier = new JMenuItem();
  //private JMenuItem jMenuItem_moyenne = new JMenuItem();
 
  ***********************************************/
 
  private JMenu jMenu_Quitter = new JMenu();
  private JMenuItem jMenuItem_modifier = new JMenuItem();
  private JPanel jPanel1 = new JPanel();
  private JLabel jLabel1 = new JLabel();
  private GridLayout gridLayout1 = new GridLayout();
  private JMenuItem jMenuItem_about = new JMenuItem();
  private JMenuItem jMenuItem_fermer = new JMenuItem();
 // private JLabel jLabel2 = new JLabel();
  public Fentre_acceuile() {
	    try {
	      Etudiant   Appel=new Etudiant();
	      Note   Appel1=new Note();
	    Classe appele = new Classe();
	    Cours appelecour = new Cours();
	    
	    boolean ok=fic.ouvrir("L");
	    if(ok==true)
	       {
	           appele.glossaireEtudiant=(Vector)fic.lecture();
	           fic.Fermer("L");
	       }

	     boolean ok2=fic2.ouvrir("L");
	     if(ok2==true)
	      {
	          appele.glossaireFilier=(Vector)fic2.lecture();
	          fic2.Fermer("L");
	       }
	     boolean ok4=fic4.ouvrir("L");
	     if(ok4==true)
	      {
	    	 appelecour.glossaireCours=(Vector)fic4.lecture();
	          fic4.Fermer("L");
	       }

	     
	     //--------------------
	     boolean ok3=fic3.ouvrir("L");
	     if(ok3==true)
	      {
	       //   appele.glossaireNote=(Vector)fic3.lecture();
	          fic3.Fermer("L");
	       }
	      jbInit();
	    }
	    catch(Exception e) {
	      e.printStackTrace();
	    }
	  }
  //Initialiser le composant
  private void jbInit() throws Exception  {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(Fentre_acceuile.class.getResource("[Votre ic�ne]")));
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(borderLayout1);
    this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    this.setSize(new Dimension(434, 451));
    this.setTitle("                                                                 " +
    "               Gestion Carnet de Note");
    jMenuBar1.setBackground(new Color(255,200,111));
    //jMenuBar1.setFont(new java.awt.Font("Serif", 12, 18));
    jMenu_Etudiant.setMnemonic('E');
    jMenu_Etudiant.setText("Etudiant");
    jMenu_Filiere.setMnemonic('F');
    jMenu_Filiere.setText("Classe");
    jMenu_filiere_ajout.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/InBox.gif")));
    jMenu_filiere_ajout.setMnemonic('J');
    jMenu_filiere_ajout.setText("Ajoute");
    jMenu_filiere_ajout.addActionListener(new ActionListener()  {
      public void actionPerformed(ActionEvent e) {
        jMenu_filiere_ajout_actionPerformed(e);
      }
    });
    jMenuItem_ajout.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/InBox.gif")));
    jMenuItem_ajout.setMnemonic('A');
    jMenuItem_ajout.setText("Ajoute");
    jMenuItem_ajout.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuItem_ajout_actionPerformed(e);
      }
    });
    jMenuItem_consult.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/consulter.gif")));
    jMenuItem_consult.setMnemonic('C');
    jMenuItem_consult.setText("Consultation");
    jMenuItem_consult.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuItem_consult_actionPerformed(e);
      }
    });
    jMenuItem_suprime.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/supprimer.gif")));
    jMenuItem_suprime.setMnemonic('S');
    jMenuItem_suprime.setText("Supression");
    jMenuItem_suprime.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuItem_suprime_actionPerformed(e);
      }
    });
    jMenuItem_Afficher_classe.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/Afficher.gif")));
    jMenuItem_Afficher_classe.setMnemonic('F');
    jMenuItem_Afficher_classe.setText("Afficher la classe");
    jMenuItem_Afficher_classe.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuItem_Afficher_classe_actionPerformed(e);
      }
    });
    //---------------------------
    jMenuItem_Afficher_cours.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/Afficher.gif")));
    jMenuItem_Afficher_cours.setMnemonic('D');
    jMenuItem_Afficher_cours.setText("Afficher les Cours");
    jMenuItem_Afficher_cours.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuItem_Afficher_cours_actionPerformed(e);
      }
    });
    //----------------------
    jMenuItem_trier.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/tri.GIF")));
    jMenuItem_trier.setMnemonic('T');
    jMenuItem_trier.setText("Trie la classe");
    jMenuItem_trier.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuItem_trier_actionPerformed(e);
      }
    });
    jMenuItem_moyenne.setMnemonic('L');
    jMenuItem_moyenne.setText("Calcule moyenne");
    jMenuItem_moyenne.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuItem_moyenne_actionPerformed(e);
      }
    });
   
      jMenu_Quitter.setMnemonic('Q');
    jMenu_Quitter.setText("Quitter");
   
    jMenu_Note.setMnemonic('N');
    jMenu_Note.setText("Note");
    jMenu_Cours.setMnemonic('K');
    jMenu_Cours.setText("Cours");
    jMenuItem_AjoutN.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/modifier.gif")));
    jMenuItem_AjoutN.setMnemonic('B');
    jMenuItem_AjoutN.setText("Ajouttt");
    jMenuItem_AjoutN.addActionListener(new ActionListener()  {
        public void actionPerformed(ActionEvent e) {
        	jMenu_cours_ajout_actionPerformed(e);
        }
      });
    
    
    jMenuItem_SupN.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/modifier.gif")));
    jMenuItem_SupN.setMnemonic('U');
    jMenuItem_SupN.setText("Supprimer");
    jMenuItem_ModN.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/modifier.gif")));
    jMenuItem_ModN.setMnemonic('O');
    jMenuItem_ModN.setText("Afficherr ");
    jMenuItem_ModN.addActionListener(new ActionListener()  {
        public void actionPerformed(ActionEvent e) {
            jMenu_note_affiche_actionPerformed(e);
          }
        });
   
    jMenuItem_AjoutC.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/modifier.gif")));
    jMenuItem_AjoutC.setMnemonic('P');
    jMenuItem_AjoutC.setText("Ajoutdd");
    jMenuItem_AjoutC.addActionListener(new ActionListener()  {
        public void actionPerformed(ActionEvent e) {
          jMenu_note_ajout_actionPerformed(e);
        }
      });
    
    
    jMenuItem_SupC.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/modifier.gif")));
    jMenuItem_SupC.setMnemonic('H');
    jMenuItem_SupC.setText("Supprimer");
    jMenuItem_ModC.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/modifier.gif")));
    jMenuItem_ModC.setMnemonic('W');
    jMenuItem_ModC.setText("Midifier");
   

    jMenuItem_modifier.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/modifier.gif")));
    jMenuItem_modifier.setMnemonic('M');
    jMenuItem_modifier.setText("Modification");
    jPanel1.setLayout(gridLayout1);
    jLabel1.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/WALLPA47.JPG")));
    //jMenuItem_about.setMnemonic('B');
   // jMenuItem_about.setText("About");
    /*jMenuItem_about.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuItem_about_actionPerformed(e);
      }
    });*/
    jMenuItem_fermer.setIcon(new ImageIcon(new java.net.URL("file:///G:/Documents and Settings/Administrateur/Bureau/Projet Gestion des Note Graphique V3A/Projet Gestion des Note2/quitter.gif")));
    jMenuItem_fermer.setMnemonic('R');
    jMenuItem_fermer.setText("Fermer");
    jMenuItem_fermer.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e)  {
        try
        {
        jMenuItem_fermer_actionPerformed(e);
        }
        catch(Exception ex)
        {

        }
      }
    });
    jPanel1.setToolTipText("");
    jMenu_Filiere.add(jMenu_filiere_ajout);
    jMenu_Filiere.add(jMenuItem_Afficher_classe);
    //-----------------------------
    jMenu_Cours.add(jMenuItem_Afficher_cours);
    //--------------------------------------------
    jMenu_Filiere.add(jMenuItem_trier);
    jMenu_Filiere.add(jMenuItem_moyenne);
    jMenuBar1.add(jMenu_Etudiant);
    jMenuBar1.add(jMenu_Filiere);
 
   
    jMenuBar1.add(jMenu_Note);
    jMenuBar1.add(jMenu_Cours);//************************
    jMenuBar1.add(jMenu_Quitter);
    jMenu_Etudiant.add(jMenuItem_ajout);
    jMenu_Etudiant.add(jMenuItem_consult);
    jMenu_Etudiant.add(jMenuItem_modifier);
    jMenu_Etudiant.add(jMenuItem_suprime);
    contentPane.add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(jLabel1, null);
    //jLabel1.add(jLabel2);
    jMenu_Quitter.add(jMenuItem_fermer);
    this.setJMenuBar(jMenuBar1);
    //**********
  /* jLabel2.setBackground(new Color (111,2,0));
    jLabel2.setBounds(23, 56, 415, 114);
    jLabel2.setVisible(true);*/
    jMenu_Note.add(jMenuItem_AjoutC);
    this.setJMenuBar(jMenuBar1);
    jMenu_Cours.add(jMenuItem_AjoutN);
    this.setJMenuBar(jMenuBar1);
   
    jMenu_Note.add(jMenuItem_ModN);
    this.setJMenuBar(jMenuBar1);
    jMenu_Note.add(jMenuItem_SupN);
    this.setJMenuBar(jMenuBar1);
    jMenu_Cours.add(jMenuItem_ModC);
    this.setJMenuBar(jMenuBar1);
    jMenu_Cours.add(jMenuItem_SupC);
    this.setJMenuBar(jMenuBar1);

  }
  //Op�ration Fichier | Quitter effectu�e
  public void jMenuFileExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }
  //Op�ration Aide | A propos effectu�e
  public void jMenu_filiere_ajout_actionPerformed(ActionEvent e) {
    Ajoute_filiere filiere=new Ajoute_filiere();
    filiere.setBounds(340,110,370,300);
    filiere.setModal(true);
    filiere.show();
  }
  public void jMenu_cours_ajout_actionPerformed(ActionEvent e) {
	    Ajout_cours cours=new Ajout_cours();
	    cours.setBounds(340,110,370,300);
	    cours.setModal(true);
	    cours.show();
	  }
  public void jMenu_note_ajout_actionPerformed(ActionEvent e) {
	    Ajout_note cours=new Ajout_note();
	    cours.setBounds(340,110,370,300);
	    cours.setModal(true);
	    cours.show();
	  }
  
  public void jMenu_note_affiche_actionPerformed(ActionEvent e) {
	    Affiche_note cours=new Affiche_note();
	    cours.setBounds(340,110,370,300);
	    cours.setModal(true);
	    cours.show();
	  }
  void jMenuItem_ajout_actionPerformed(ActionEvent e) {
Ajoute_etudiant etd= new Ajoute_etudiant();
etd.setBounds(340,110,370,400);
etd.setModal(true);
etd.show();

  }

  void jMenuItem_ajoutN_actionPerformed(ActionEvent e) {
	  Ajout_note etd= new Ajout_note();
	  etd.setBounds(340,110,370,400);
	  etd.setModal(true);
	  etd.show();

	    }

  void jMenuItem_consult_actionPerformed(ActionEvent e) {
Consulter_Etudiant cltEtd=new Consulter_Etudiant();
cltEtd.setBounds(340,110,370,400);
cltEtd.setModal(true);
cltEtd.show();


 }

  void jMenuItem_trier_actionPerformed(ActionEvent e) {
Trier tr= new Trier();
tr.setBounds(340,110,385,359);
tr.setModal(true);
tr.show();
  }
public  String  InputFilier()
 {
   //demande � l'utilisateur � saisir la filier � afficher

        boolean trouve=false;
        String fil1= JOptionPane.showInputDialog(null,"Veuillez saisir le nom de la filiere:   ","Gestion carnet de notes",JOptionPane.QUESTION_MESSAGE);
        if(fil1==null)
        {// si on a choisi Annuler
          fil1="";
        }
        fil1=fil1.toUpperCase().trim();// on va mettre la valeur saisi en majuscule est suprimer les espaces
          // teste si la filier existe
        for(int i=0;i<cls.glossaireFilier.size();i++)
        {
          if(((Classe)cls.glossaireFilier.elementAt(i)).getFilier().equals(fil1))
          {
          trouve=true;
          break;
          }
        }
        if (trouve==false)
        {
          JOptionPane.showMessageDialog(null,"Filiere introuvable!!!!!!!!!!","Attention",JOptionPane.ERROR_MESSAGE);
          return "" ;
        }
        else
          return fil1;
 }
 public int InputGroup(String nom_filier)
 {
   int grp;
   boolean trouve;
  /*si la filier existe
          on va demande � l'utilisateur de saisir le group � afficher
          */

          // teste si le group existe
          String gp=JOptionPane.showInputDialog(null,"Veuillez saisir le niveau:   ","Gestion carnet de notes",JOptionPane.QUESTION_MESSAGE);
          if(gp==null ||gp.equals(""))
          gp="0";
          grp=Integer.valueOf(gp.trim()).intValue();
          trouve=false;
          for(int i=0;i<cls.glossaireFilier.size();i++)
        {
          if(((Classe)cls.glossaireFilier.elementAt(i)).getFilier().equals(nom_filier) &&(grp<=((Classe)cls.glossaireFilier.elementAt(i)).getGroup() && grp>0) )
          {
          trouve=true;
          break;
        }
        }
        if(!trouve)
        {
          JOptionPane.showMessageDialog(null,"niveau introuvable!!!!!!!!!!","Attention",JOptionPane.ERROR_MESSAGE);
       return 0;
        }
        else
        {
          return grp;
        }
 }
  void jMenuItem_Afficher_classe_actionPerformed(ActionEvent e) {
Afficher_classe aff= new Afficher_classe();
aff.setBounds(340,110,399,340);
aff.setModal(true);
  }
 
  void jMenuItem_Afficher_cours_actionPerformed(ActionEvent e) {
Affiche_cours aff= new Affiche_cours();
aff.setBounds(340,110,399,340);
aff.setModal(true);
  }
  void jMenuItem_suprime_actionPerformed(ActionEvent e) {
  boolean supprimer;
  int mt;
  String mtr=JOptionPane.showInputDialog(null,"Veuillez saisir le Matricule à supprimer:   ","Gestion carnet de notes",JOptionPane.QUESTION_MESSAGE);
  if(mtr==null || mtr.equals("")) mtr="0";
  mt=Integer.valueOf(mtr).intValue();
  supprimer=cls.Suppression(mt);
  if(supprimer)
    JOptionPane.showMessageDialog(null,"      Suppresion effectue","Gestion carnet de notes",JOptionPane.INFORMATION_MESSAGE);
  else
    JOptionPane.showMessageDialog(null,"      Etudiant non existe","Gestion carnet de notes",JOptionPane.INFORMATION_MESSAGE);
  }



  void jMenuItem_fermer_actionPerformed(ActionEvent e) throws Exception  {

	    int choix =JOptionPane.showConfirmDialog(null,"Voulez vous vraiment quiter cette application  ?","Connexion",JOptionPane.YES_NO_OPTION ,JOptionPane.QUESTION_MESSAGE);
	    if (choix==JOptionPane.OK_OPTION)
	    {
	      //charger le vecteur glossaireEtudiant dans le fichier Etudiant
	      fic.ouvrir("E");
	      fic.Enregistrer(cls.glossaireEtudiant);
	      fic.Fermer("E");
	      //charger le vecteur glossaireFilier dans le fichier filier
	      fic2.ouvrir("E");
	      fic2.Enregistrer(cls.glossaireFilier);
	      fic2.Fermer("E");
	    //charger le vecteur glossaireFilier dans le fichier cours
	      fic4.ouvrir("E");
	      fic4.Enregistrer(cour.glossaireCours);
	      fic4.Fermer("E");
	    //charger le vecteur glossaireFilier dans le fichier note
	      fic3.ouvrir("E");
	     // fic3.Enregistrer(note.glossaireNote);
	      fic3.Fermer("E");
	      System.exit(0);
	    }
	  }

  /*void jMenuItem_about_actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,"Titre : Gestion carnet de notes."+'\n'+"Copyright: Copyright (c) 2005"+'\n'+"Auteur  : BOUSALEM Zakaria"+'\n'+"Version 1.0","Apropos",JOptionPane.INFORMATION_MESSAGE);
  }*/

  void jMenuItem_moyenne_actionPerformed(ActionEvent e) {
    String filier=InputFilier();
     double moyenne;
     int group=0;
    if(filier!="")
      group=InputGroup(filier);
    if(group!=0)
    {
        moyenne =cls.Calcule_Moyenne_de_la_classe(filier,group);
          if(moyenne==-1)
             JOptionPane.showMessageDialog(null,"Classe vide   !!!!!!!!!!!","Gestion carnet de notes",JOptionPane.WARNING_MESSAGE);
          else
        JOptionPane.showMessageDialog(null,"le Moyenne de la classe "+ filier +", "+"le group "+ group +" est :"+moyenne  ,"Calcule Moyenne de la classe",JOptionPane.INFORMATION_MESSAGE);

    }
  }
}
